# -*- coding:utf-8 -*-
"""
@Author : 审心
@Time : 2023/4/24 15:13
方法相关工具类
"""
import inspect
from typing import Callable


def get_func_params_to_dict(func: Callable, args, kwargs):
    """
    以方法参数的名称 与 参数 映射成为 字段 (目前主要用于装饰器 aop 方法时获取参数映射)
    :param func: 方法对象
    :param args: args 参数
    :param kwargs: kwargs 参数
    :return: 
    """
    sig = inspect.signature(func)
    params = {}
    for i, param in enumerate(sig.parameters.values()):
        if param.name in kwargs:
            params[param.name] = kwargs[param.name]
        else:
            params[param.name] = args[i]
    return params
